home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Genie / Projects / Concept3D / Source / Includes / C3DGeometry.hh next >
Encoding:
Text File  |  2000-06-24  |  1.1 KB  |  74 lines

  1. /*    ==============
  2.  *    C3DGeometry.hh
  3.  *    ==============
  4.  *    
  5.  *    Implemented by C3DGeometry.cc
  6.  */
  7.  
  8. #ifndef C3DGEOMETRY_HH
  9. #define C3DGEOMETRY_HH
  10.  
  11. #include "C3DMatrix.hh"
  12.  
  13. class C3DPoint : public C3DMatrix {
  14. public:
  15.     C3DPoint() : C3DMatrix(1, 4) {Cell(0, 0) = 0; Cell(0, 3) = 1;}
  16.     virtual ~C3DPoint() {}
  17. };
  18.  
  19. class C3DTransform : public C3DMatrix {
  20. public:
  21.     C3DTransform() : C3DMatrix(4, 4) {}
  22.     virtual ~C3DTransform() {}
  23. };
  24.  
  25. typedef C3DTransform C3DOrientation;
  26.  
  27. class C3DVector {
  28. public:
  29.     double dx, dy, dz;
  30. };
  31.  
  32. class C3DLine {
  33. public:
  34.     C3DPoint ptA, ptB;
  35. };
  36.  
  37. class C3DPlane {
  38. public:
  39.     C3DPoint origin;
  40.     C3DOrientation orient;
  41. };
  42.  
  43. class C3DTranslation : public C3DTransform {
  44. public:
  45.     C3DTranslation(double dx, double dy, double zd);
  46.     virtual ~C3DTranslation() {}
  47. };
  48.  
  49. class C3DYaw : public C3DTransform {
  50. public:
  51.     C3DYaw(double theta);
  52.     virtual ~C3DYaw() {}
  53. };
  54.  
  55. class C3DPitch : public C3DTransform {
  56. public:
  57.     C3DPitch(double phi);
  58.     virtual ~C3DPitch() {}
  59. };
  60.  
  61. class C3DRoll : public C3DTransform {
  62. public:
  63.     C3DRoll(double psi);
  64.     virtual ~C3DRoll() {}
  65. };
  66.  
  67. class C3DScale : public C3DTransform {
  68. public:
  69.     C3DScale(double factor);
  70.     virtual ~C3DScale() {}
  71. };
  72.  
  73. #endif
  74.